package cate.game.role.res.call.base;

import cate.common.util.GameResult;
import cate.game.role.Role;
import cate.game.role.res.call.CallBasePO;


public interface ICallHandler<T extends CallBasePO> {


    boolean callPreCheck(Role role, CallProcessData processData, T basePO);

    void singleCallExe(Role role, CallProcessData processData, T basePO);

    void singleCallAffect(Role role, CallProcessData processData, T basePO);

    void modifyByDifferentMod(Role role, CallProcessData processData, T basePO);

    GameResult calcResult(Role role, CallProcessData processData, T basePO);


}
